package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Set;

/**
 * 角色接口层
 * @author wangxin
 * @version 1.0
 */
public interface RoleDao {

    Set<Role> findRolesByUserId(Integer userId);

    /**
     * 分页查询
     * @param queryString
     * @return
     */
    Page<Role> findPage(String queryString);

    /**
     * 添加角色
     * @param role
     * @return
     */
    int add(Role role);

    /**
     * 根据角色id 查找角色
     * @param id
     * @return
     */
    @Select("SELECT * from t_role where id = #{id}")
    Role findById(Integer id);

    /**
     * 编辑角色信息
     * @param role
     * @return
     */
    @Update("UPDATE t_role set name = #{name}, keyword = #{keyword}, description = #{description} WHERE id = #{id}")
    int edit(Role role);

    /**
     * 在角色表中, 根据角色id删除角色
     * @param roleId
     * @return
     */
    @Delete("DELETE FROM t_role WHERE id = #{roleId}")
    int delete(Integer roleId);

    /**
     * 查询所有角色列表
     * @return
     */
    @Select("select * from t_role")
    List<Role> findAll();
}
